Eloquent JavaScript Chessboard explained